#include <iostream>
using namespace std;

// 引用的本质 -- 指针常量
void func(int &ref) // 自动转换为 int* const ref = &a;
{
    ref = 100; // 自动转换为：*ref = 100;
}

int main()
{
    int a = 10;

    // 自动转换为 int* const ref = &a;
    // 指针常量是指针指向不变，因此，引用一旦初始化，就不可以修改
    int &ref = a;
    ref = 20; // 自动转换为：*ref = 20;

    cout << "a = " << a << endl;
    cout << "ref = " << ref << endl;

    func(a);
    return 0;
}